iT邦幫忙

2022 iThome 鐵人賽

DAY 28
1

複習一下登入系統的程式邏輯,

登入系統邏輯:
1.判斷用戶要新增文章時,有沒有登入資料
2.如果沒有,跳轉登入頁面,驗證使用者輸入的帳號,正確就存一個cookie。
2.當他要新增文章時,會檢測有沒有這個cookie的資料。
3.有就是有登入的
4.沒有就要跳回登入畫面

所以這邊提到一個關鍵,就是cookie的紀錄,雖然我們使用了.Net 的套件來做登入系統,
但像是紀錄權限、登入系統這些功能,需要跟系統註冊說明說我要啟用這些功能。

目標:
1.跟系統註冊啟用權限功能

步驟:
step1.開啟projram.cs

builder.Services
    // cookie 登入時的預設
    .AddAuthentication(options => options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme)
    .AddCookie(x =>
    {
        // 如果登入失敗會跳轉甚麼頁面
        x.LoginPath = new PathString("/Login");
    });
// 註冊[Authorize] 這個attribute方法,系統會驗證有沒有claims物件
builder.Services.AddAuthorization();

step2.啟用服務

// 這我記得是官方順序
app.UseAuthentication();
app.UseRouting();
app.UseAuthorization();

note:
pipeline 處理request 是有順序性的,依照官方順序即可。

step3.最後一個步驟,在你想要進行登入驗證的Controller 或是 action 加上[Authorize],要求使用者進行驗證。
我這邊範例是,要進入新增文章頁面前會進行驗證,如果驗證失敗會進入Login.cshtml的頁面。

 [Authorize]
 [HttpGet("CreateArticle")]
 public IActionResult CreateArticle()
 {
   return View();
 }

到這邊基本上就完成啦~

希望大家除了幫這邊文章案讚,也幫我分享我的第一篇文章。
如果人數夠多,我計畫附上影片教學以及原始碼。
讓大家可以更簡單建立自己的blog


上一篇
[Day 27] 登入系統(二)
下一篇
[Day 29] 最後Publish 你的專案到Azure吧~ 讓世界看到你
系列文
Asp.Net Core 零基礎建立自己的Blog30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言